package javaapplication2;


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class XMLReader {

         ArrayList<String> directorio = new ArrayList<String>();
         ArrayList<String> directorio1 = new ArrayList<String>();
         ArrayList<String> directorio2 = new ArrayList<String>();
         ArrayList<String> directorio3 = new ArrayList<String>();
         ArrayList<String> directorio4 = new ArrayList<String>();

    public void leectura()
    {
        try {
            File archivo = new File("directorio_Activo.xml");
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(archivo);
            doc.getDocumentElement().normalize();
            System.out.println("Root element " + doc.getDocumentElement().getNodeName());
            NodeList nodeLst = doc.getElementsByTagName("Jugador");
            System.out.println("Jugadores");




            for (int s = 0; s < nodeLst.getLength(); s++) {

                Node fstNode = nodeLst.item(s);


                if (fstNode.getNodeType() == Node.ELEMENT_NODE) {

                    Element fstElmnt = (Element) fstNode;
                    NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("Usuario");
                    Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
                    NodeList fstNm = fstNmElmnt.getChildNodes();
                    System.out.println("Nombre : " + ((Node) fstNm.item(0)).getNodeValue());
                    directorio.add("" + ((Node) fstNm.item(0)).getNodeValue());
                    NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("Clave");
                    Element lstNmElmnt = (Element) lstNmElmntLst.item(0);
                    NodeList lstNm = lstNmElmnt.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm.item(0)).getNodeValue());
                    directorio1.add("" + ((Node) lstNm.item(0)).getNodeValue());

                    NodeList lstNmElmntLst1 = fstElmnt.getElementsByTagName("Nombre");
                    Element lstNmElmnt1 = (Element) lstNmElmntLst1.item(0);
                    NodeList lstNm1 = lstNmElmnt1.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm1.item(0)).getNodeValue());
                    directorio2.add("" + ((Node) lstNm1.item(0)).getNodeValue());

                    NodeList lstNmElmntLst2 = fstElmnt.getElementsByTagName("Edad");
                    Element lstNmElmnt2 = (Element) lstNmElmntLst2.item(0);
                    NodeList lstNm2 = lstNmElmnt2.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm2.item(0)).getNodeValue());
                    directorio3.add("" + ((Node) lstNm2.item(0)).getNodeValue());

                    NodeList lstNmElmntLst3 = fstElmnt.getElementsByTagName("TipoRango");
                    Element lstNmElmnt3 = (Element) lstNmElmntLst3.item(0);
                    NodeList lstNm3 = lstNmElmnt3.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm3.item(0)).getNodeValue());
                    directorio4.add("" + ((Node) lstNm3.item(0)).getNodeValue());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        PrintWriter salida=null;
        try {
            salida = new PrintWriter(new FileWriter(new File("directorio_Activo.xml")));
        } catch (IOException ex) {
            Logger.getLogger(XMLReader.class.getName()).log(Level.SEVERE, null, ex);
        }
        String linea = "";
        linea = "<?xml version='1.0' encoding='UTF-8' ?>";
        salida.write(linea);
        salida.write("\n");
        linea = "<DirectorioActivo xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'";
        salida.write(linea);
        salida.write("\n");
        linea = "xsi:noNamespaceSchemaLocation='directorio_Activo.xsd'>";
        salida.write(linea);
        salida.write("\n");

        for (int i = 0; i < directorio.size(); i++) {
            linea = "<Jugador>";
            salida.write(linea);
            salida.write("\n");
            linea = ("<Usuario>" + directorio.get(i) + "</Usuario>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Clave>" + directorio1.get(i) + "</Clave>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Nombre>" + directorio2.get(i) + "</Nombre>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Edad>" + directorio3.get(i) + "</Edad>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<TipoRango>" + directorio4.get(i) + "</TipoRango>");
            salida.write(linea);
            salida.write("\n");
            linea = ("</Jugador>");
            salida.write(linea);
            salida.write("\n");
        }
        linea = ("</DirectorioActivo>");
        salida.write(linea);
        salida.close();
    }
    public void modificarPerfil(String v,String t,String t2,String t3)
    {
        int contador=0;
         try {
            File archivo = new File("directorio_Activo.xml");
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(archivo);
            doc.getDocumentElement().normalize();
            System.out.println("Root element " + doc.getDocumentElement().getNodeName());
            NodeList nodeLst = doc.getElementsByTagName("Jugador");
            System.out.println("Jugadores");




            for (int s = 0; s < nodeLst.getLength(); s++) {

                Node fstNode = nodeLst.item(s);


                if (fstNode.getNodeType() == Node.ELEMENT_NODE) {

                    Element fstElmnt = (Element) fstNode;
                    NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("Usuario");
                    Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
                    NodeList fstNm = fstNmElmnt.getChildNodes();
                    System.out.println("Nombre : " + ((Node) fstNm.item(0)).getNodeValue());
                    directorio.add("" + ((Node) fstNm.item(0)).getNodeValue());
                    NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("Clave");
                    Element lstNmElmnt = (Element) lstNmElmntLst.item(0);
                    NodeList lstNm = lstNmElmnt.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm.item(0)).getNodeValue());
                    directorio1.add("" + ((Node) lstNm.item(0)).getNodeValue());

                    NodeList lstNmElmntLst1 = fstElmnt.getElementsByTagName("Nombre");
                    Element lstNmElmnt1 = (Element) lstNmElmntLst1.item(0);
                    NodeList lstNm1 = lstNmElmnt1.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm1.item(0)).getNodeValue());
                    directorio2.add("" + ((Node) lstNm1.item(0)).getNodeValue());

                    NodeList lstNmElmntLst2 = fstElmnt.getElementsByTagName("Edad");
                    Element lstNmElmnt2 = (Element) lstNmElmntLst2.item(0);
                    NodeList lstNm2 = lstNmElmnt2.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm2.item(0)).getNodeValue());
                    directorio3.add("" + ((Node) lstNm2.item(0)).getNodeValue());

                    NodeList lstNmElmntLst3 = fstElmnt.getElementsByTagName("TipoRango");
                    Element lstNmElmnt3 = (Element) lstNmElmntLst3.item(0);
                    NodeList lstNm3 = lstNmElmnt3.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm3.item(0)).getNodeValue());
                    directorio4.add("" + ((Node) lstNm3.item(0)).getNodeValue());
                }


            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        for(int i=0;i<directorio.size();i++)
        {
            if(v.equalsIgnoreCase(directorio.get(i)))
            {
                contador=i;
            }
        }

        PrintWriter salida=null;
        try {
            salida = new PrintWriter(new FileWriter(new File("directorio_Activo.xml")));
        } catch (IOException ex) {
            Logger.getLogger(XMLReader.class.getName()).log(Level.SEVERE, null, ex);
        }
        String linea = "";
        linea = "<?xml version='1.0' encoding='UTF-8' ?>";
        salida.write(linea);
        salida.write("\n");
        linea = "<DirectorioActivo xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'";
        salida.write(linea);
        salida.write("\n");
        linea = "xsi:noNamespaceSchemaLocation='directorio_Activo.xsd'>";
        salida.write(linea);
        salida.write("\n");



        for (int i = 0; i < directorio.size(); i++) {
            if(i==contador)
            {
            linea = "<Jugador>";
            salida.write(linea);
            salida.write("\n");
            linea = ("<Usuario>" + directorio.get(i) + "</Usuario>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Clave>" + directorio1.get(i) + "</Clave>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Nombre>" + t + "</Nombre>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Edad>" + t2 + "</Edad>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<TipoRango>" + t3 + "</TipoRango>");
            salida.write(linea);
            salida.write("\n");
            linea = ("</Jugador>");
            salida.write(linea);
            salida.write("\n");
            }
            else
            {
            linea = "<Jugador>";
            salida.write(linea);
            salida.write("\n");
            linea = ("<Usuario>" + directorio.get(i) + "</Usuario>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Clave>" + directorio1.get(i) + "</Clave>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Nombre>" + directorio2.get(i) + "</Nombre>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Edad>" + directorio3.get(i) + "</Edad>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<TipoRango>" + directorio4.get(i) + "</TipoRango>");
            salida.write(linea);
            salida.write("\n");
            linea = ("</Jugador>");
            salida.write(linea);
            salida.write("\n");

            }

        }
        linea = ("</DirectorioActivo>");
        salida.write(linea);
        salida.close();
    }

    public void registrar(String usuario, String clave, String nombre, String edad, String tipoRango)
    {
        if(usuario.length()==0 || clave.length()==0 ||nombre.length()==0 ||edad.length()==0 ||tipoRango.length()==0)
        {

        }
        else
        {
             try {
            File archivo = new File("directorio_Activo.xml");
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(archivo);
            doc.getDocumentElement().normalize();
            System.out.println("Root element " + doc.getDocumentElement().getNodeName());
            NodeList nodeLst = doc.getElementsByTagName("Jugador");
            System.out.println("Jugadores");




            for (int s = 0; s < nodeLst.getLength(); s++) {

                Node fstNode = nodeLst.item(s);


                if (fstNode.getNodeType() == Node.ELEMENT_NODE) {

                    Element fstElmnt = (Element) fstNode;
                    NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("Usuario");
                    Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
                    NodeList fstNm = fstNmElmnt.getChildNodes();
                    System.out.println("Nombre : " + ((Node) fstNm.item(0)).getNodeValue());
                    directorio.add("" + ((Node) fstNm.item(0)).getNodeValue());
                    NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("Clave");
                    Element lstNmElmnt = (Element) lstNmElmntLst.item(0);
                    NodeList lstNm = lstNmElmnt.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm.item(0)).getNodeValue());
                    directorio1.add("" + ((Node) lstNm.item(0)).getNodeValue());

                    NodeList lstNmElmntLst1 = fstElmnt.getElementsByTagName("Nombre");
                    Element lstNmElmnt1 = (Element) lstNmElmntLst1.item(0);
                    NodeList lstNm1 = lstNmElmnt1.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm1.item(0)).getNodeValue());
                    directorio2.add("" + ((Node) lstNm1.item(0)).getNodeValue());

                    NodeList lstNmElmntLst2 = fstElmnt.getElementsByTagName("Edad");
                    Element lstNmElmnt2 = (Element) lstNmElmntLst2.item(0);
                    NodeList lstNm2 = lstNmElmnt2.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm2.item(0)).getNodeValue());
                    directorio3.add("" + ((Node) lstNm2.item(0)).getNodeValue());

                    NodeList lstNmElmntLst3 = fstElmnt.getElementsByTagName("TipoRango");
                    Element lstNmElmnt3 = (Element) lstNmElmntLst3.item(0);
                    NodeList lstNm3 = lstNmElmnt3.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm3.item(0)).getNodeValue());
                    directorio4.add("" + ((Node) lstNm3.item(0)).getNodeValue());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        PrintWriter salida=null;
        try {
            salida = new PrintWriter(new FileWriter(new File("directorio_Activo.xml")));
        } catch (IOException ex) {
            Logger.getLogger(XMLReader.class.getName()).log(Level.SEVERE, null, ex);
        }
        String linea = "";
        linea = "<?xml version='1.0' encoding='UTF-8' ?>";
        salida.write(linea);
        salida.write("\n");
        linea = "<DirectorioActivo xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'";
        salida.write(linea);
        salida.write("\n");
        linea = "xsi:noNamespaceSchemaLocation='directorio_Activo.xsd'>";
        salida.write(linea);
        salida.write("\n");

        for (int i = 0; i < directorio.size(); i++) {
            linea = "<Jugador>";
            salida.write(linea);
            salida.write("\n");
            linea = ("<Usuario>" + directorio.get(i) + "</Usuario>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Clave>" + directorio1.get(i) + "</Clave>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Nombre>" + directorio2.get(i) + "</Nombre>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Edad>" + directorio3.get(i) + "</Edad>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<TipoRango>" + directorio4.get(i) + "</TipoRango>");
            salida.write(linea);
            salida.write("\n");
            linea = ("</Jugador>");
            salida.write(linea);
            salida.write("\n");
        }


            linea = "<Jugador>";
            salida.write(linea);
            salida.write("\n");
            linea = ("<Usuario>" + usuario + "</Usuario>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Clave>" + clave + "</Clave>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Nombre>" + nombre + "</Nombre>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Edad>" + edad + "</Edad>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<TipoRango>" + tipoRango + "</TipoRango>");
            salida.write(linea);
            salida.write("\n");
            linea = ("</Jugador>");
            salida.write(linea);
            salida.write("\n");

        linea = ("</DirectorioActivo>");
        salida.write(linea);
        salida.close();
            
        }

    }

    public void elminar(String usuario)
    {
         int contador=0;
         try {
            File archivo = new File("directorio_Activo.xml");
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(archivo);
            doc.getDocumentElement().normalize();
            System.out.println("Root element " + doc.getDocumentElement().getNodeName());
            NodeList nodeLst = doc.getElementsByTagName("Jugador");
            System.out.println("Jugadores");




            for (int s = 0; s < nodeLst.getLength(); s++) {

                Node fstNode = nodeLst.item(s);


                if (fstNode.getNodeType() == Node.ELEMENT_NODE) {

                    Element fstElmnt = (Element) fstNode;
                    NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("Usuario");
                    Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
                    NodeList fstNm = fstNmElmnt.getChildNodes();
                    System.out.println("Nombre : " + ((Node) fstNm.item(0)).getNodeValue());
                    directorio.add("" + ((Node) fstNm.item(0)).getNodeValue());
                    NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("Clave");
                    Element lstNmElmnt = (Element) lstNmElmntLst.item(0);
                    NodeList lstNm = lstNmElmnt.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm.item(0)).getNodeValue());
                    directorio1.add("" + ((Node) lstNm.item(0)).getNodeValue());

                    NodeList lstNmElmntLst1 = fstElmnt.getElementsByTagName("Nombre");
                    Element lstNmElmnt1 = (Element) lstNmElmntLst1.item(0);
                    NodeList lstNm1 = lstNmElmnt1.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm1.item(0)).getNodeValue());
                    directorio2.add("" + ((Node) lstNm1.item(0)).getNodeValue());

                    NodeList lstNmElmntLst2 = fstElmnt.getElementsByTagName("Edad");
                    Element lstNmElmnt2 = (Element) lstNmElmntLst2.item(0);
                    NodeList lstNm2 = lstNmElmnt2.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm2.item(0)).getNodeValue());
                    directorio3.add("" + ((Node) lstNm2.item(0)).getNodeValue());

                    NodeList lstNmElmntLst3 = fstElmnt.getElementsByTagName("TipoRango");
                    Element lstNmElmnt3 = (Element) lstNmElmntLst3.item(0);
                    NodeList lstNm3 = lstNmElmnt3.getChildNodes();
                    System.out.println("Clave : " + ((Node) lstNm3.item(0)).getNodeValue());
                    directorio4.add("" + ((Node) lstNm3.item(0)).getNodeValue());
                }


            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        for(int i=0;i<directorio.size();i++)
        {
            if(usuario.equalsIgnoreCase(directorio.get(i)))
            {
                contador=i;
            }
        }

        PrintWriter salida=null;
        try {
            salida = new PrintWriter(new FileWriter(new File("directorio_Activo.xml")));
        } catch (IOException ex) {
            Logger.getLogger(XMLReader.class.getName()).log(Level.SEVERE, null, ex);
        }
        String linea = "";
        linea = "<?xml version='1.0' encoding='UTF-8' ?>";
        salida.write(linea);
        salida.write("\n");
        linea = "<DirectorioActivo xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'";
        salida.write(linea);
        salida.write("\n");
        linea = "xsi:noNamespaceSchemaLocation='directorio_Activo.xsd'>";
        salida.write(linea);
        salida.write("\n");



        for (int i = 0; i < directorio.size(); i++) {
            if(i==contador)
            {
                
            }
            else
            {
            linea = "<Jugador>";
            salida.write(linea);
            salida.write("\n");
            linea = ("<Usuario>" + directorio.get(i) + "</Usuario>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Clave>" + directorio1.get(i) + "</Clave>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Nombre>" + directorio2.get(i) + "</Nombre>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<Edad>" + directorio3.get(i) + "</Edad>");
            salida.write(linea);
            salida.write("\n");
            linea = ("<TipoRango>" + directorio4.get(i) + "</TipoRango>");
            salida.write(linea);
            salida.write("\n");
            linea = ("</Jugador>");
            salida.write(linea);
            salida.write("\n");

            }

        }
        linea = ("</DirectorioActivo>");
        salida.write(linea);
        salida.close();
    }
}



